<template>
  <view>
    <text>微信授权回调页面</text>
  </view>
</template>

<script>
export default {
  onLoad(options) {
    // 1. 小程序/uniapp常规情况，先尝试从 onLoad(options) 里取 code
    let code = options.code || '';
	let shopId = options.shop_id || 0;
	let userId = options.user_id || 0;
	let state = options.state || '---';

    // 2. 如果是 H5 环境，而且 code 还是空的，就从 location.search 里去解析
    //  - 只有在H5模式下，URL里通常会有 "?code=xxxx" 放在 # 之前
    if (!code) {
      // #ifdef H5
      const searchParams = new URLSearchParams(window.location.search);
      code = searchParams.get('code') || '';
      // #endif
    }


    if (code) {
      this.getUserInfoByCode(code, shopId, userId, state);
    } else {
      uni.showToast({ title: '未获取到 code', icon: 'none' });
    }
  },
  methods: {
    async getUserInfoByCode(code, shopId, userId, state) {
      try {
        // 以 [err, res] 形式接收结果
        const [err, res] = await uni.request({
          url: this.$apiUrl + '/api/weChat/getUserInfoByCode?code='+ code +'&shop_id=' + shopId + '&user_id=' +userId+ '&state='+state,
          method: 'GET',
        //  data: { code, shopId, userId, state }
        });

        if (!err && res.data.code === 200) {
          // 登录成功
        //  const userInfo = res.data.data;
        //  uni.setStorageSync('my_info', userInfo);

          uni.showToast({
            title: '登录成功',
            icon: 'success'
          });

          setTimeout(() => {
            // 根据自己需求，跳转到 tabbar 或其他页面
            uni.switchTab({ url: '/pages/my/index' });
          }, 1000);
        } else {
          // 登录失败
          uni.showToast({
            title: (res.data && res.data.msg) || '授权失败',
            icon: 'none'
          });
        }
      } catch (e) {
        uni.showToast({
          title: '请求异常',
          icon: 'none'
        });
      }
    }
  }
}
</script>
